Guild icon
wafer.space Community
πŸ—οΈ - Designing / project-template / pure digital, no hard macros, no SRAM.
Between 11/30/2025 23:59 and 01/01/2026 00:00
00:32
Ok, so it's just a big design then. Can you tell which rule it's stuck on by looking at the current log file?
Avatar
2025-12-01 13:25:53 +0000: Memory Usage (1206676K) : Starting deriving base layers. 2025-12-01 13:28:27 +0000: Memory Usage (2314588K) : Construct connectivity for the design. 2025-12-01 13:28:28 +0000: Memory Usage (2314588K) : Connectivity rules enabled, Netlist object will be generated. Chip' - Stage 68 - Design Rule Check (KLayout) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━ 67/77 11:58:20
Avatar
Is it thrashing? How's your memory usage?
Avatar
57.1 GiB free memory
00:34
4.17GiB used by klayout (edited)
00:34
Avatar
If you do a find openlane/<block>/runs/<timestamp> you should see a lot of files generated at each step. If you look in the directory for klayout-drc (not sure of the name), there should be a real time log showing how much time was spent on each rule. Depending on the output buffering, you may be able to tell which rule is currently being checked.
Avatar
@Lofty So that looks like it's been running for about 2 min. Maybe the step after that is where it's stuck. Might be helpful to look at the log after it completes. Is there a openlane configuration variable to do deep vs flat drc? All the configuration variables (including defaults) are in the openlane/<block>/runs/<timestamp>/resolved.json file.
Avatar
Avatar
bailey
@Lofty So that looks like it's been running for about 2 min. Maybe the step after that is where it's stuck. Might be helpful to look at the log after it completes. Is there a openlane configuration variable to do deep vs flat drc? All the configuration variables (including defaults) are in the openlane/<block>/runs/<timestamp>/resolved.json file.
(I killed the run, because I didn't have any reason to believe it would complete after another twelve hours of runtime)
Avatar
@Lofty do you have any old runs still around in a different timestamp directory that completed?
Avatar
not anymore, no
Avatar
Avatar
bailey
@Lofty So that looks like it's been running for about 2 min. Maybe the step after that is where it's stuck. Might be helpful to look at the log after it completes. Is there a openlane configuration variable to do deep vs flat drc? All the configuration variables (including defaults) are in the openlane/<block>/runs/<timestamp>/resolved.json file.
also, I should maybe point out the timezone there. it wasn't running for 2 minutes.
Avatar
@Lofty Not sure what you mean about timezone. Start time 2025-12-01 13:24:36 Last enty 2025-12-01 13:25:41
Avatar
Avatar
bailey
@Lofty Not sure what you mean about timezone. Start time 2025-12-01 13:24:36 Last enty 2025-12-01 13:25:41
yes, and it is currently 2025-12-02 01:40
πŸ‘ 1
Avatar
Ok, either the last few log entries were buffered or it prints after completion and it was stuck somewhere. Probably need a complete log to know for sure.
Avatar
Avatar
bailey
Ok, either the last few log entries were buffered or it prints after completion and it was stuck somewhere. Probably need a complete log to know for sure.
that was the complete log
Avatar
Sorry, I mean a log file after klayout-drc has completely finished.
Avatar
like, even in stdout there were no rules mentioned; I genuinely don't think it made it far enough to get stuck on a rule
Avatar
You may be correct. I have seen log files that are piped or tee'd get buffered though.
Avatar
Trevor Peyton 12/02/2025 06:54
Are you on macOS? I've been running into the same issue
Avatar
Avatar
Trevor Peyton
Are you on macOS? I've been running into the same issue
WSL
10:56
well, I re-ran the flow overnight, and...it's stuck on klayout again
Avatar
Leo Moser (mole99) 12/02/2025 11:52
@Lofty Did you came this far?
11:52
Avatar
Avatar
Leo Moser (mole99)
Click to see attachment πŸ–ΌοΈ
yes.
11:52
and then it hangs.
Avatar
Leo Moser (mole99) 12/02/2025 11:52
Alright, let's wait for a while.
Avatar
Avatar
Leo Moser (mole99)
Click to see attachment πŸ–ΌοΈ
It's been an hour. Any luck?
Avatar
Leo Moser (mole99) 12/02/2025 12:55
It's still generating the netlist object. For KianV this took 1-2h iirc. Since your design is all combinatorial I would assume it to take even longer.
12:57
However, you can try something else on your end: Go to gf180mcu/gf180mcuD/libs.tech/librelane and open config.tcl. Set conn_drc to false: dict set ::env(KLAYOUT_DRC_OPTIONS) conn_drc false
12:59
This will skip generating the netlist object. But this also means KLayout needs to consider the worst case for connectivity rules. Still, worth a try.
Avatar
Avatar
Leo Moser (mole99)
This will skip generating the netlist object. But this also means KLayout needs to consider the worst case for connectivity rules. Still, worth a try.
okay, we have rules being executed now; this is great
πŸ‘Œ 1
Avatar
Avatar
Leo Moser (mole99)
It's still generating the netlist object. For KianV this took 1-2h iirc. Since your design is all combinatorial I would assume it to take even longer.
Trevor Peyton 12/02/2025 15:57
FYI mine took 8+ hours and it didn't change from that step... I'll try that option (edited)
Avatar
Avatar
Trevor Peyton
FYI mine took 8+ hours and it didn't change from that step... I'll try that option (edited)
Leo Moser (mole99) 12/02/2025 15:58
You can try disabling conn_drc as well. But then you might get false positive DRC errors.
Avatar
[15:53:43] VERBOSE Running 'Checker.KLayoutDRC' at 'librelane/runs/RUN_2025-12-02_01-03-17/65-checker-klayoutdrc'… step.py:1138 [15:53:43] ERROR 16 KLayout DRC errors found. - deferred checker.py:124 urgh
Avatar
Leo Moser (mole99) 12/02/2025 15:58
Nice, we can work with that.
Avatar
um, they seem to all be NW.2b_MV violations?
16:02
"Min. Nwell Space (Outside DNWELL) [Different potential]"
Avatar
Leo Moser (mole99) 12/02/2025 16:03
As expected, since Klayout does not have any connectivity information it needs to assume the worse.
16:04
Can you open the violations in the KLayout Marker Browser and send me a screenshot where they are located? (edited)
Avatar
um, where's the marker database file to open? (edited)
16:09
I think I found it, but it's giving me stuff like this
16:09
Avatar
Avatar
Leo Moser (mole99)
Can you open the violations in the KLayout Marker Browser and send me a screenshot where they are located? (edited)
^
Avatar
Leo Moser (mole99) 12/02/2025 16:24
Is this with just the Nwell layer enabled?
Avatar
@lofty, turn on only nwel and then set the display levels to 0 - 20 (or hit the + key until all the cell frames disappear)
16:46
it seems like the DRC rules are generating pairs of errors for this
16:46
so there are only like 8 actual conflicts?
16:50
cc @bailey @Leo Moser (mole99)
Avatar
Leo Moser (mole99) 12/02/2025 18:58
@Lofty Sorry, I was afk. The next step is to make sure all devices use the "Dualgate" layer. These are the thick oxide transistors for 5V/6V. This should be the case anyways if you use the foundry provided I/O cells and standard cells. If so, it means we can actually use rule NW.2a (equi-potential). Now, just take a measurement between the edges and check that the spacing is >= 0.74um. I'll do the same before adding your design to the shuttle, but this way you can already be sure these are false positives :)
18:59
FYI KLayout was not stuck, it just took a looong time:
18:59
19:00
This will make for a good test case for Matthias.
Avatar
Leo Moser (mole99) 12/02/2025 20:43
20:43
Almost 9 hours, but we're done. The magic DRC errors are CO.3 and can be ignored.
20:44
@Lofty Your design is DRC clean πŸŽ‰
Avatar
Avatar
Leo Moser (mole99)
@Lofty Your design is DRC clean πŸŽ‰
hurray; too bad that GDS has hold violations and I have spent the past several hours building a new GDS >.<
20:54
all the same, I don't think I have much to worry about there.
20:56
maybe I really do need a CPU upgrade though, if it takes me 12 hours to fail to achieve what you can complete in 9...
Avatar
Leo Moser (mole99) 12/03/2025 07:23
At least you know that there isn't anything special DRC-wise about your design. So the next iteration will very likely also be DRC clean. I'm using a Ryzen 9 9900X and I'm running it natively on Linux. It may be that the emulation through WSL2 may cause you to lose some performance.
Avatar
well, now I have very slow antenna checking ^^;
16:30
it's stuck on 2025-12-05 15:21:23 +0000: Memory Usage (3550244K) : Executing rule ANT.16_i_ANT.5
Avatar
Leo Moser (mole99) 12/05/2025 16:35
You can jump to the latest tag of the PDK: https://github.com/wafer-space/gf180mcu/releases/tag/1.4.3 There have been two more changes that should speed up the antenna check, however, don't expect miracles.
Avatar
now I'm getting what seems to be an LVS failure?
23:46
um, @bailey you seem to be the person to talk to about LVS?
23:47
Circuit 1 contains 137698 devices, Circuit 2 contains 140300 devices. *** MISMATCH *** Circuit 1 contains 133045 nets, Circuit 2 contains 138947 nets. *** MISMATCH ***
23:49
oh. am I running into Magic issues because I have autoname on?
Avatar
Avatar
Lofty
oh. am I running into Magic issues because I have autoname on?
@Lofty I have seen errors due to autoname. I've used klayout to manually removed them from the gds without having to rerun. From the limited information above, I'm guessing that there are unconnected power rails for some standard cell rows. Most probably between or at the edges where there's not enough room to intersect with power rails. If you share the cell list from the lvs.report that precedes the mismatch counts above, I might be able to suggest something else.
Avatar
@Lofty this one lvs.netgen.rpt has more information.
Avatar
... and how about the lvs_config.json file. Looks like the standard cell spice may not be loaded. Do you know what command is being used to run LVS?
Avatar
Avatar
bailey
... and how about the lvs_config.json file. Looks like the standard cell spice may not be loaded. Do you know what command is being used to run LVS?
um, I don't have a file by that name?
Avatar
@Lofty ok. I'm not yet familiar with the wafer.space LVS setup. Is it run as part of precheck or a github action or is there a command to run LVS locally?
Avatar
it's librelane
Avatar
@Lofty thanks, that explains a lot. Looks like the verilog and layout are out of sync. I'm seeing mismatches in standard cell counts that should not happen. gf180mcu_fd_sc_mcu9t5v0__oai21_1 (12908) |gf180mcu_fd_sc_mcu9t5v0__oai21_1 (13137) * gf180mcu_fd_sc_mcu9t5v0__mux2_1 (10908) |gf180mcu_fd_sc_mcu9t5v0__mux2_1 (10942) ** The layout is the abstract extracted spice runs/eco/29-magic-spiceextraction/chip_top.spice, but unfortunately, I can't find what verilog netlist is being used. I'll create a PR that records that file in the log file.
Avatar
Avatar
bailey
@Lofty thanks, that explains a lot. Looks like the verilog and layout are out of sync. I'm seeing mismatches in standard cell counts that should not happen. gf180mcu_fd_sc_mcu9t5v0__oai21_1 (12908) |gf180mcu_fd_sc_mcu9t5v0__oai21_1 (13137) * gf180mcu_fd_sc_mcu9t5v0__mux2_1 (10908) |gf180mcu_fd_sc_mcu9t5v0__mux2_1 (10942) ** The layout is the abstract extracted spice runs/eco/29-magic-spiceextraction/chip_top.spice, but unfortunately, I can't find what verilog netlist is being used. I'll create a PR that records that file in the log file.
I did eco in some hold buffers, but...they should be in there? Hmm
Avatar
Here's the PR with the change. https://github.com/librelane/librelane/pull/831 If you wanted to make the change locally, you could verify whether or not the expected top level verilog netlist is being used.
Currently, the top level verilog file name is not displayed in the netgen log. Here&amp;#39;s a sample Reading SPICE netlist file &amp;#39;/home/&amp;lt;user&amp;gt;/gf180mcu-chess/gf180mcu/gf180mc...
Avatar
Avatar
Lofty
Circuit 1 contains 137698 devices, Circuit 2 contains 140300 devices. *** MISMATCH *** Circuit 1 contains 133045 nets, Circuit 2 contains 138947 nets. *** MISMATCH ***
Circuit 1 contains 140296 devices, Circuit 2 contains 140296 devices. Circuit 1 contains 138946 nets, Circuit 2 contains 138946 nets. Final result: Circuits match uniquely. the issue is indeed Magic; this is using 8.3.578 which includes the 512-character maximum name length fix (edited)
πŸ‘ 1
07:07
(@Leo Moser (mole99) maybe the flake.nix should be updated?)
Avatar
Avatar
Lofty
(@Leo Moser (mole99) maybe the flake.nix should be updated?)
Leo Moser (mole99) 12/06/2025 10:58
I'm on it!
Exported 88 message(s)
Timezone: UTC+0